package form

type (
    OrderCreateReqForm struct {
        Id              uint64 `form:"id" json:"id" binding:"required"`
        Cloth           string `form:"cloth" json:"cloth"`
        PhotoWmUrl      string `form:"photo_wm_url" json:"photo_wm_url" binding:"required"`
        OriginPhotoName string `form:"origin_photo_name" json:"origin_photo_name" binding:"required"`
        PicId           string `form:"pic_id" json:"pic_id" binding:"required"`
        IsFair          string `form:"is_fair" json:"is_fair"`
        Color           string `form:"color" json:"color"`
    }

    OrderCreateRespForm struct {
        OrderSn  string `json:"order_sn"`
    }
)

type (
    OrderGetListReqForm struct {
    }

    OrderGetListItem struct {
        CreatedAt  int64  `json:"created_at"`
        OrderSn    string `json:"order_sn"`
        Status     int8   `json:"status"`
        Title      string `json:"title"`
        PhotoUrl   string `json:"photo_url"`
        PrintUrl   string `json:"print_url"`
        Amount     uint64 `json:"amount"`
        PhotoWmUrl string `json:"photo_wm_url"`
        StatusText string `json:"status_text"`
        Cloth      string `json:"cloth"`
    }

    OrderGetListRespForm []OrderGetListItem
)

type (
    OrderGetParamsReqForm struct {
        OrderSn string `form:"order_sn" json:"order_sn" binding:"required"`
    }

    OrderGetParamsRespForm struct {
        TimeStamp int64  `json:"time_stamp"`
        NonceStr  string `json:"nonce_str"`
        Package   string `json:"package"`
        SignType  string `json:"sign_type"`
        PaySign   string `json:"pay_sign"`
    }
)

type (
    OrderCallbackReqForm struct {
        ReturnCode    string `xml:"return_code" form:"return_code"`
        ReturnMsg     string `xml:"return_msg" form:"return_msg"`
        Appid         string `xml:"appid" form:"appid"`
        MchID         string `xml:"mch_id" form:"mch_id"`
        DeviceInfo    string `xml:"device_info" form:"device_info"`
        NonceStr      string `xml:"nonce_str" form:"nonce_str"`
        Sign          string `xml:"sign" form:"sign"`
        ResultCode    string `xml:"result_code" form:"result_code"`
        ErrCode       string `xml:"err_code" form:"err_code"`
        ErrCodeDes    string `xml:"err_code_des" form:"err_code_des"`
        Openid        string `xml:"openid" form:"openid"`
        IsSubscribe   string `xml:"is_subscribe" form:"is_subscribe"`
        TradeType     string `xml:"trade_type" form:"trade_type"`
        BankType      string `xml:"bank_type" form:"bank_type"`
        TotalFee      int64  `xml:"total_fee" form:"total_fee"`
        FeeType       string `xml:"fee_type" form:"fee_type"`
        CashFee       int64  `xml:"cash_fee" form:"cash_fee"`
        CashFeeType   string `xml:"cash_fee_type" form:"cash_fee_type"`
        CouponFee     int64  `xml:"coupon_fee" form:"coupon_fee"`
        CouponCount   int64  `xml:"coupon_count" form:"coupon_count"`
        CouponID0     string `xml:"coupon_id_0" form:"coupon_id_0"`
        CouponFee0    int64  `xml:"coupon_fee_0" form:"coupon_fee_0"`
        TransactionID string `xml:"transaction_id" form:"transaction_id"`
        OutTradeNo    string `xml:"out_trade_no" form:"out_trade_no"`
        Attach        string `xml:"attach" form:"attach"`
        TimeEnd       string `xml:"time_end" form:"time_end"`
    }

    OrderCallbackRespForm struct {
        ReturnCode string `json:"return_code"`
        ReturnMsg  string `json:"return_msg"`
    }
)

type (
    OrderRefreshOrderReqForm struct {
        OrderSn string `form:"order_sn" json:"order_sn" binding:"required"`
    }

    OrderRefreshOrderRespForm struct {

    }
)